package Docker

import (
	"fmt"
    "os/exec"
    "runtime"
	"time"
)

//启动
func Docker_start() {
	var cmd *exec.Cmd
    var err error

    // 尝试使用service命令启动Docker
    if runtime.GOOS == "linux" {
        cmd = exec.Command("service", "docker", "start")
        err = cmd.Run()
    }

    // 如果使用service命令启动Docker失败，则使用systemctl命令启动Docker
    if err != nil {
        //中文
		fmt.Println("使用service命令启动Docker失败，正在使用systemctl命令启动Docker...")
        cmd = exec.Command("systemctl", "start", "docker")
        err = cmd.Run()
        if err != nil {
            fmt.Println("使用systemctl命令启动Docker失败：", err)
			time.Sleep(1 * time.Second)
        } else {
            fmt.Println("Docker已成功使用systemctl命令启动。")
			time.Sleep(1 * time.Second)
        }
    } else {
        fmt.Println("Docker已成功使用service命令启动。")
    }
	time.Sleep(1 * time.Second)
}

//停止
func Docker_stop() {
	var cmd *exec.Cmd
	var err error

	// 尝试使用service命令停止Docker
	if runtime.GOOS == "linux" {
		cmd = exec.Command("service", "docker", "stop")
		err = cmd.Run()
	}

	// 如果使用service命令停止Docker失败，则使用systemctl命令停止Docker
	if err != nil {
		fmt.Println("使用service命令停止Docker失败，正在使用systemctl命令停止Docker...")
		time.Sleep(1 * time.Second)
		cmd = exec.Command("systemctl", "stop", "docker")
		err = cmd.Run()
		if err != nil {
			fmt.Println("使用systemctl命令停止Docker失败：", err)
			time.Sleep(1 * time.Second)
		} else {
			fmt.Println("Docker已成功使用systemctl命令停止。")
			time.Sleep(1 * time.Second)
		}
	} else {
		fmt.Println("Docker已成功使用service命令停止。")
	}
	time.Sleep(1 * time.Second)
}


func Docker_restart() {
	var cmd *exec.Cmd
    var err error

    // 尝试使用service命令启动Docker
    if runtime.GOOS == "linux" {
        cmd = exec.Command("service", "docker", "restart")
        err = cmd.Run()
    }

    // 如果使用service命令启动Docker失败，则使用systemctl命令启动Docker
    if err != nil {
        //中文
		fmt.Println("使用service命令重启Docker失败，正在使用systemctl命令重启Docker...")
        cmd = exec.Command("systemctl", "restart", "docker")
        err = cmd.Run()
        if err != nil {
            fmt.Println("使用systemctl命令重启Docker失败：", err)
			time.Sleep(1 * time.Second)
        } else {
            fmt.Println("Docker已成功使用systemctl命令重启。")
			time.Sleep(1 * time.Second)
        }
    } else {
        fmt.Println("Docker已成功使用service命令重启。")
    }
	time.Sleep(1 * time.Second)
}